// 导入路由模块
const router = require('express').Router();
//导入 express缓存
const session = require('express-session')

//导入 在node.js中生成svg验证码
const svgCaptcha = require('svg-captcha');

// 设置session，配置缓存有效期
router.use(session({
    secret: 'test',
    name: 'name',
    cookie: {
      maxAge: 60000
    },
    resave: false,
    saveUninitialized: true,
  }));
// 获取验证码
// 地址：http://127.0.0.1:4000/api/verify/captcha
// 方式：GET
// 请求参数：无
// 返回值：svg格式验证码图片
let arr=[];
router.get('/captcha', function (req, res) {
    var captcha = svgCaptcha.create();//创建svg验证码
    req.session.captcha = captcha.text;//将验证码文本存进session
    text=captcha.text;
    arr.push(text)
    res.type('svg').send(captcha.data);
});
// 验证验证码
// 地址：http://127.0.0.1:4000/api/verify/test
// 方式：GET
// 参数:captcha (验证码)
// 返回值：session对象
router.get('/test', function (req, res) {
    if(req.query.captcha){
      let index;
      let newArr = arr.filter((text,i)=>{
        // 验证码大小写兼容
        let v1 = text.toUpperCase();
        let v2 = req.query.captcha.toUpperCase();
        if(v1==v2){
          index=i;
          return text
        }
      })
      
      if(newArr.length==1){
        res.send({
          code:200,
          msg:'验证通过'
        })
        arr.splice(index,1);
      }
      else{
        res.send({
          code:-1,
          msg:"验证码错误"
        })
      }
    }
    else{
      res.send({
        code:-1,
        msg:'缺少验证码'
      })
    }
})

// 导出路由
module.exports = router;
